home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2007 September / PCWSEP07.iso / Software / Linux / Linux Mint 3.0 Light / LinuxMint-3.0-Light.iso / casper / filesystem.squashfs / usr / include / libpurple / ntlm.h < prev    next >
Encoding:
C/C++ Source or Header  |  2007-05-04  |  2.3 KB  |  73 lines

  1. /**
  2.  * @file ntlm.h
  3.  *
  4.  * purple
  5.  *
  6.  * Copyright (C) 2005, Thomas Butter <butter@uni-mannheim.de>
  7.  *
  8.  * ntlm structs are taken from NTLM description on
  9.  * http://www.innovation.ch/java/ntlm.html
  10.  *
  11.  * This program is free software; you can redistribute it and/or modify
  12.  * it under the terms of the GNU General Public License as published by
  13.  * the Free Software Foundation; either version 2 of the License, or
  14.  * (at your option) any later version.
  15.  *
  16.  * This program is distributed in the hope that it will be useful,
  17.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  18.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  19.  * GNU General Public License for more details.
  20.  *
  21.  * You should have received a copy of the GNU General Public License
  22.  * along with this program; if not, write to the Free Software
  23.  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  24.  */
  25.  
  26. #ifndef _PURPLE_NTLM_H
  27. #define _PURPLE_NTLM_H
  28.  
  29. #ifdef __cplusplus
  30. extern "C" {
  31. #endif
  32.  
  33. /**
  34.  * Generates the base64 encoded type 1 message needed for NTLM authentication
  35.  *
  36.  * @param hostname Your hostname
  37.  * @param domain The domain to authenticate to
  38.  * @return base64 encoded string to send to the server.  This should
  39.  *         be g_free'd by the caller.
  40.  */
  41. gchar *purple_ntlm_gen_type1(const gchar *hostname, const gchar *domain);
  42.  
  43. /**
  44.  * Parses the ntlm type 2 message
  45.  *
  46.  * @param type2 String containing the base64 encoded type2 message
  47.  * @param flags If not @c NULL, this will store the flags for the message
  48.  * 
  49.  * @return The nonce for use in message type3.  This is a statically
  50.  *         allocated 8 byte binary string.
  51.  */
  52. guint8 *purple_ntlm_parse_type2(const gchar *type2, guint32 *flags);
  53.  
  54. /**
  55.  * Generates a type3 message
  56.  *
  57.  * @param username The username
  58.  * @param passw The password
  59.  * @param hostname The hostname
  60.  * @param domain The domain to authenticate against
  61.  * @param nonce The nonce returned by purple_ntlm_parse_type2
  62.  * @param flags Pointer to the flags returned by purple_ntlm_parse_type2
  63.  * @return A base64 encoded type3 message.  This should be g_free'd by
  64.  *         the caller.
  65.  */
  66. gchar *purple_ntlm_gen_type3(const gchar *username, const gchar *passw, const gchar *hostname, const gchar *domain, const guint8 *nonce, guint32 *flags);
  67.  
  68. #ifdef __cplusplus
  69. }
  70. #endif
  71.  
  72. #endif /* _PURPLE_NTLM_H */
  73.